home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / UQWK.ZIP;1 / UQWKP12.TAR / uqwk.patch1 next >
Encoding:
Text File  |  1993-03-28  |  15.7 KB  |  623 lines

  1. Submitted-by: seb3@gte.com (Steve Belczyk)
  2. Posting-number: Volume 36, Issue 22
  3. Archive-name: uqwk/patch01
  4. Environment: UNIX
  5. Patch-To: uqwk: Volume 36, Issue 8
  6.  
  7. This patch updates the previously posted uqwk to version 1.1.  Thanks
  8. to Thomas Bullinger, John Temples, and Russell Schultz for finding bugs
  9. and suggesting changes.
  10.  
  11. Changes:
  12.  
  13. - A new switch, "-l" to limit the length of newsgroup names.
  14. - Core dumps on unsubscribed, unread newsgroups fixed.
  15. - Control.dat now created in proper directory.
  16. - Some other small changes and code clean-up.
  17.  
  18. cd into the uqwk source directory and "patch -p1 < this-file"
  19.  
  20. diff -c uqwk1.0/Makefile uqwk1.1/Makefile
  21. *** uqwk1.0/Makefile    Mon Mar 15 13:48:48 1993
  22. --- uqwk1.1/Makefile    Thu Mar 18 10:39:52 1993
  23. ***************
  24. *** 7,12 ****
  25. --- 7,15 ----
  26.   #
  27.   #  Use this for SGI:
  28.   #CFLAGS=-cckr
  29. + #
  30. + #  Use this for SCO 3.2.2:
  31. + #CFLAGS=-Od
  32.   
  33.   uqwk:    uqwk.o options.o init.o mail.o misc.o close.o news.o reply.o offline.o
  34.       cc -o uqwk uqwk.o options.o init.o mail.o misc.o close.o news.o reply.o offline.o
  35. diff -c uqwk1.0/close.c uqwk1.1/close.c
  36. *** uqwk1.0/close.c    Mon Mar 15 13:48:48 1993
  37. --- uqwk1.1/close.c    Thu Mar 18 10:29:36 1993
  38. ***************
  39. *** 1,5 ****
  40. --- 1,6 ----
  41.   #include <stdio.h>
  42.   #include <string.h>
  43. + #include <sys/types.h>
  44.   #include <time.h>
  45.   #include "uqwk.h"
  46.   
  47. ***************
  48. *** 36,46 ****
  49.       struct conf_ent *cp;
  50.       struct tm *t;
  51.       char ctl_fname[PATH_LEN];
  52. !     int clock;
  53.   
  54.       strcpy (ctl_fname, home_dir);
  55. !     strcpy (ctl_fname, "/");
  56. !     strcpy (ctl_fname, "control.dat");
  57.   
  58.       if (NULL == (ctl_fd = fopen (ctl_fname, "w")))
  59.       {
  60. --- 37,47 ----
  61.       struct conf_ent *cp;
  62.       struct tm *t;
  63.       char ctl_fname[PATH_LEN];
  64. !     time_t clock;
  65.   
  66.       strcpy (ctl_fname, home_dir);
  67. !     strcat (ctl_fname, "/");
  68. !     strcat (ctl_fname, "control.dat");
  69.   
  70.       if (NULL == (ctl_fd = fopen (ctl_fname, "w")))
  71.       {
  72. ***************
  73. *** 65,71 ****
  74.       cp = conf_list;
  75.       while (cp != NULL)
  76.       {
  77. !         fprintf (ctl_fd, "%d\r\n%s\r\n", cp->number, cp->name);
  78.           cp = cp->next;
  79.       }
  80.   
  81. --- 66,80 ----
  82.       cp = conf_list;
  83.       while (cp != NULL)
  84.       {
  85. !         strcpy (buf, cp->name);
  86. !         /* Truncate the group name if desired */
  87. !         if ( (grp_len > 0) && (grp_len < BUF_LEN) )
  88. !         {
  89. !             buf[grp_len] = 0;
  90. !         }
  91. !         fprintf (ctl_fd, "%d\r\n%s\r\n", cp->number, buf);
  92.           cp = cp->next;
  93.       }
  94.   
  95. ***************
  96. *** 92,97 ****
  97. --- 101,107 ----
  98.       wn (nrc_list);
  99.   
  100.       fclose (nrc_fd);
  101. +     return (1);
  102.   }
  103.   
  104.   wn (np)
  105. ***************
  106. *** 111,115 ****
  107. --- 121,126 ----
  108.       {
  109.           fprintf (nrc_fd, "%s! 1-%d\n", np->name, np->hi);
  110.       }
  111. +     return (1);
  112.   }
  113.   
  114. diff -c uqwk1.0/mail.c uqwk1.1/mail.c
  115. *** uqwk1.0/mail.c    Mon Mar 15 13:48:49 1993
  116. --- uqwk1.1/mail.c    Thu Mar 18 10:30:08 1993
  117. ***************
  118. *** 54,59 ****
  119. --- 54,60 ----
  120.               fclose (mail_fd);
  121.           }
  122.       }
  123. +     return (1);
  124.   }
  125.   
  126.   MakeMailList ()
  127. ***************
  128. *** 118,124 ****
  129.   {
  130.       struct qwk_hdr hdr;
  131.       char c[PATH_LEN], *eof, ndx[5];
  132. !     int out_bytes, n;
  133.   
  134.       /* Write the ndx file entry */
  135.       inttoms (blk_cnt, ndx);
  136. --- 119,125 ----
  137.   {
  138.       struct qwk_hdr hdr;
  139.       char c[PATH_LEN], *eof, ndx[5];
  140. !     int out_bytes, n, i;
  141.   
  142.       /* Write the ndx file entry */
  143.       inttoms (blk_cnt, ndx);
  144. ***************
  145. *** 201,206 ****
  146. --- 202,215 ----
  147.       do
  148.       {
  149.           n = strlen (buf);
  150. +         /* MMDF puts funny things in messages -- change to spaces */
  151. +         for (i=0; i<n; i++)
  152. +         {
  153. +             if (buf[i] == 1) buf[i] = ' ';
  154. +             if (buf[i] == 0) buf[i] = ' ';
  155. +         }
  156.           fwrite (buf, n, 1, msg_fd);
  157.           out_bytes += n;
  158.           if (n < BUF_LEN-1)
  159. diff -c uqwk1.0/misc.c uqwk1.1/misc.c
  160. *** uqwk1.0/misc.c    Mon Mar 15 13:48:49 1993
  161. --- uqwk1.1/misc.c    Sat Mar 13 21:54:56 1993
  162. ***************
  163. *** 186,192 ****
  164.           for (i=0; i<n; i++)
  165.           {
  166.                   if ( (line[i] == ' ') || (line[i] == '-') ||
  167. !                      (line[i] == ',') || (line[i] == ':') )
  168.                           last_delim = i;
  169.           }
  170.   
  171. --- 186,193 ----
  172.           for (i=0; i<n; i++)
  173.           {
  174.                   if ( (line[i] == ' ') || (line[i] == '-') ||
  175. !                      (line[i] == ',') || (line[i] == ':') ||
  176. !              (line[i] == '!') )
  177.                           last_delim = i;
  178.           }
  179.   
  180. diff -c uqwk1.0/news.c uqwk1.1/news.c
  181. *** uqwk1.0/news.c    Mon Mar 15 13:48:49 1993
  182. --- uqwk1.1/news.c    Thu Mar 18 10:28:56 1993
  183. ***************
  184. *** 39,44 ****
  185. --- 39,45 ----
  186.           }
  187.           np = np->next;
  188.       }
  189. +     return (1);
  190.   }
  191.   
  192.   int ReadNewsrc()
  193. ***************
  194. *** 214,219 ****
  195. --- 215,222 ----
  196.   
  197.       /* Reset hi article number */
  198.       np->hi = ap->hi;
  199. +     return (1);
  200.   }
  201.   
  202.   DoArticle (art_file)
  203. ***************
  204. *** 325,330 ****
  205. --- 328,334 ----
  206.       for (;n<128;n++) fputc (' ', msg_fd);
  207.   
  208.       fclose (art_fd);
  209. +     return (1);
  210.   }
  211.   
  212.   OutOfMemory()
  213. diff -c uqwk1.0/offline.c uqwk1.1/offline.c
  214. *** uqwk1.0/offline.c    Mon Mar 15 13:48:50 1993
  215. --- uqwk1.1/offline.c    Thu Mar 18 10:32:23 1993
  216. ***************
  217. *** 77,82 ****
  218. --- 77,83 ----
  219.   
  220.       fprintf (pfd, "\nEnd of commands.\n");
  221.       pclose (pfd);
  222. +     return (1);
  223.   }
  224.   
  225.   int GetLine (bytes)
  226. ***************
  227. *** 183,188 ****
  228. --- 184,191 ----
  229.   
  230.       WriteNewsrc();
  231.       fprintf (pfd, "Okay, you are now subscribed to %s.\n", group);
  232. +     return (1);
  233.   }
  234.   
  235.   Unsubscribe (pfd)
  236. ***************
  237. *** 234,239 ****
  238. --- 237,244 ----
  239.   
  240.       WriteNewsrc();
  241.       fprintf (pfd, "Okay, you are unsubscribed from %s.\n", group);
  242. +     return (1);
  243.   }
  244.   
  245.   Groups (pfd)
  246. ***************
  247. *** 255,260 ****
  248. --- 260,266 ----
  249.           fprintf (pfd, "    %s\n", np->name);
  250.           np = np->next;
  251.       }
  252. +     return (1);
  253.   }
  254.   
  255.   Allgroups (pfd)
  256. ***************
  257. *** 277,280 ****
  258. --- 283,287 ----
  259.               ap->name, ap->hi - ap->lo);
  260.           ap = ap->next;
  261.       }
  262. +     return (1);
  263.   }
  264. diff -c uqwk1.0/options.c uqwk1.1/options.c
  265. *** uqwk1.0/options.c    Mon Mar 15 13:48:50 1993
  266. --- uqwk1.1/options.c    Mon Mar 15 14:23:19 1993
  267. ***************
  268. *** 35,40 ****
  269. --- 35,41 ----
  270.       prt_opts = DEF_PRT_OPTS;
  271.       read_only = DEF_READ_ONLY;
  272.       max_blks = DEF_MAX_BLKS;
  273. +     grp_len = DEF_GRP_LEN;
  274.   
  275.       strcpy (mail_dir, DEF_MAIL_DIR);
  276.       strcpy (mail_file, DEF_MAIL_FILE);
  277. ***************
  278. *** 63,68 ****
  279. --- 64,70 ----
  280.       if (NULL != (c = getenv ("UQ_PRT_OPTS"))) prt_opts = atoi (c);
  281.       if (NULL != (c = getenv ("UQ_READ_ONLY"))) read_only = atoi (c);
  282.       if (NULL != (c = getenv ("UQ_MAX_BLKS"))) max_blks = atoi (c);
  283. +     if (NULL != (c = getenv ("UQ_GRP_LEN"))) grp_len = atoi (c);
  284.   
  285.       if (NULL != (c = getenv ("UQ_HOME_DIR"))) strcpy (home_dir, c);
  286.       if (NULL != (c = getenv ("UQ_MAIL_FILE"))) strcpy (mail_file, c);
  287. ***************
  288. *** 175,180 ****
  289. --- 177,185 ----
  290.               case 'R':    strcpy (rep_file, &argv[i][2]);
  291.                       break;
  292.   
  293. +             case 'l':    grp_len = atoi (&argv[i][2]);
  294. +                     break;
  295.               default:    BadFlag (argv[i]);
  296.                       break;
  297.               }
  298. ***************
  299. *** 217,227 ****
  300. --- 222,234 ----
  301.   
  302.   PrintOptions ()
  303.   {
  304. +     printf ("Version: %s\n", UQWK_VERSION);
  305.       printf ("Do mail: %d\n", do_mail);
  306.       printf ("Do news: %d\n", do_news);
  307.       printf ("Include headers: %d\n", inc_hdrs);
  308.       printf ("Read only: %d\n", read_only);
  309.       printf ("Maximum blocks: %d\n", max_blks);
  310. +     printf ("Group name limit: %d\n", grp_len);
  311.       printf ("Mail directory: %s\n", mail_dir);
  312.       printf ("News directory: %s\n", news_dir);
  313.       printf ("Mail file: %s\n", mail_file);
  314. diff -c uqwk1.0/reply.c uqwk1.1/reply.c
  315. *** uqwk1.0/reply.c    Mon Mar 15 13:48:50 1993
  316. --- uqwk1.1/reply.c    Thu Mar 18 10:33:10 1993
  317. ***************
  318. *** 51,56 ****
  319. --- 51,58 ----
  320.   
  321.       fclose (rep_fd);
  322.       printf ("%s: sent %d replies\n", progname, rep_cnt);
  323. +     return (1);
  324.   }
  325.   
  326.   SendReply ()
  327. ***************
  328. *** 174,179 ****
  329. --- 176,182 ----
  330.       }
  331.   
  332.       if (pfd != NULL) pclose (pfd);
  333. +     return (1);
  334.   }
  335.   
  336.   SendWarning (to)
  337. ***************
  338. *** 213,216 ****
  339. --- 216,220 ----
  340.   "HELP in the body of the message (not the subject). Thanks!\n");
  341.   
  342.       pclose (pfd);
  343. +     return (1);
  344.   }
  345. diff -c uqwk1.0/uqwk.c uqwk1.1/uqwk.c
  346. *** uqwk1.0/uqwk.c    Mon Mar 15 13:48:51 1993
  347. --- uqwk1.1/uqwk.c    Thu Mar 18 10:33:55 1993
  348. ***************
  349. *** 1,5 ****
  350. --- 1,7 ----
  351.   #include <stdio.h>
  352.   #include <string.h>
  353. + #define ALLOCATE
  354.   #include "uqwk.h"
  355.   
  356.   /*
  357. diff -c uqwk1.0/uqwk.h uqwk1.1/uqwk.h
  358. *** uqwk1.0/uqwk.h    Mon Mar 15 13:48:51 1993
  359. --- uqwk1.1/uqwk.h    Thu Mar 18 10:37:51 1993
  360. ***************
  361. *** 2,7 ****
  362. --- 2,15 ----
  363.    *  Header for uqwk
  364.    */
  365.   
  366. + #define UQWK_VERSION    "1.1"
  367. + #ifdef ALLOCATE
  368. + #define EXTERN
  369. + #else
  370. + #define EXTERN extern
  371. + #endif
  372.   #define    PATH_LEN    (128)    /* Length for file names, etc. */
  373.   #define BUF_LEN        (1024)    /* Length of general purpose buffer */
  374.   
  375. ***************
  376. *** 37,64 ****
  377.   #define DEF_NRC_FILE    "unknown"
  378.   #define DEF_NEWS_DIR    "/usr/spool/news"
  379.   #define DEF_REP_FILE    "none"
  380.   
  381.   /* Runtime options */
  382. ! int do_mail;            /* Process mail? */
  383. ! int do_news;            /* Process news? */
  384. ! int inc_hdrs;            /* Include headers in messages? */
  385. ! int prt_opts;            /* Just display options; no processing */
  386. ! int read_only;            /* Don't rewrite mail spool and .newsrc */
  387. ! int max_blks;            /* Maximum blocks per QWK packet */
  388.   
  389. ! char mail_file[PATH_LEN];    /* mail spool */
  390. ! char mail_dir[PATH_LEN];    /* dir for mail spool */
  391. ! char home_dir[PATH_LEN];    /* home directory */
  392. ! char user_name[PATH_LEN];    /* user's login name */
  393. ! char bbs_name[PATH_LEN];    /* BBS name */
  394. ! char bbs_city[PATH_LEN];    /* BBS city */
  395. ! char bbs_phone[PATH_LEN];    /* BBS phone number */
  396. ! char bbs_sysop[PATH_LEN];    /* BBS sysop name */
  397. ! char bbs_id[PATH_LEN];        /* BBS ID */
  398. ! char act_file[PATH_LEN];    /* Active file */
  399. ! char nrc_file[PATH_LEN];    /* .newsrc file */
  400. ! char news_dir[PATH_LEN];    /* News spool dir */
  401. ! char rep_file[PATH_LEN];    /* Reply packet file name */
  402.   
  403.   char *getenv();
  404.   char *Fgets();
  405. --- 45,74 ----
  406.   #define DEF_NRC_FILE    "unknown"
  407.   #define DEF_NEWS_DIR    "/usr/spool/news"
  408.   #define DEF_REP_FILE    "none"
  409. + #define DEF_GRP_LEN    (15)
  410.   
  411.   /* Runtime options */
  412. ! EXTERN    int do_mail;            /* Process mail? */
  413. ! EXTERN    int do_news;            /* Process news? */
  414. ! EXTERN    int inc_hdrs;            /* Include headers in messages? */
  415. ! EXTERN    int prt_opts;            /* Display options; no processing */
  416. ! EXTERN    int read_only;            /* Don't rewrite mail and .newsrc */
  417. ! EXTERN    int max_blks;            /* Maximum blocks per QWK packet */
  418. ! EXTERN    int grp_len;            /* Maximum newsgroup name length */
  419.   
  420. ! EXTERN    char mail_file[PATH_LEN];    /* mail spool */
  421. ! EXTERN    char mail_dir[PATH_LEN];    /* dir for mail spool */
  422. ! EXTERN    char home_dir[PATH_LEN];    /* home directory */
  423. ! EXTERN    char user_name[PATH_LEN];    /* user's login name */
  424. ! EXTERN    char bbs_name[PATH_LEN];    /* BBS name */
  425. ! EXTERN    char bbs_city[PATH_LEN];    /* BBS city */
  426. ! EXTERN    char bbs_phone[PATH_LEN];    /* BBS phone number */
  427. ! EXTERN    char bbs_sysop[PATH_LEN];    /* BBS sysop name */
  428. ! EXTERN    char bbs_id[PATH_LEN];        /* BBS ID */
  429. ! EXTERN    char act_file[PATH_LEN];    /* Active file */
  430. ! EXTERN    char nrc_file[PATH_LEN];    /* .newsrc file */
  431. ! EXTERN    char news_dir[PATH_LEN];    /* News spool dir */
  432. ! EXTERN    char rep_file[PATH_LEN];    /* Reply packet file name */
  433.   
  434.   char *getenv();
  435.   char *Fgets();
  436. ***************
  437. *** 65,84 ****
  438.   struct act_ent *FindActive();
  439.   
  440.   /* Various globals */
  441. ! char *progname;            /* Program name */
  442. ! int msg_cnt;            /* Total number of messages */
  443. ! int conf_cnt;            /* Total number of conferences */
  444. ! FILE *msg_fd;            /* MESSAGES.DAT file desc */
  445. ! FILE *ctl_fd;            /* CONTROL.DAT file desc */
  446. ! FILE *ndx_fd;            /* xxx.NDX file desc */
  447. ! FILE *act_fd;            /* Active file file desc */
  448. ! FILE *nrc_fd;            /* .newsrc file desc */
  449. ! FILE *rep_fd;            /* Reply packet file desc */
  450. ! unsigned char buf[BUF_LEN];    /* General purpose buffer */
  451. ! int blk_cnt;            /* Blocks written to messages.dat */
  452.   
  453.   /* This is the stuff we remember about each spooled mail message */
  454. ! struct mail_ent
  455.   {
  456.       long begin;        /* Offset of start of header */
  457.       long text;        /* Offset to end of header, start of text */
  458. --- 75,94 ----
  459.   struct act_ent *FindActive();
  460.   
  461.   /* Various globals */
  462. ! EXTERN    char *progname;            /* Program name */
  463. ! EXTERN    int msg_cnt;            /* Total number of messages */
  464. ! EXTERN    int conf_cnt;            /* Total number of conferences */
  465. ! EXTERN    FILE *msg_fd;            /* MESSAGES.DAT file desc */
  466. ! EXTERN    FILE *ctl_fd;            /* CONTROL.DAT file desc */
  467. ! EXTERN    FILE *ndx_fd;            /* xxx.NDX file desc */
  468. ! EXTERN    FILE *act_fd;            /* Active file file desc */
  469. ! EXTERN    FILE *nrc_fd;            /* .newsrc file desc */
  470. ! EXTERN    FILE *rep_fd;            /* Reply packet file desc */
  471. ! EXTERN    unsigned char buf[BUF_LEN];    /* General purpose buffer */
  472. ! EXTERN    int blk_cnt;            /* Blocks written to messages.dat */
  473.   
  474.   /* This is the stuff we remember about each spooled mail message */
  475. ! EXTERN    struct mail_ent
  476.   {
  477.       long begin;        /* Offset of start of header */
  478.       long text;        /* Offset to end of header, start of text */
  479. ***************
  480. *** 87,93 ****
  481.   } *mail_list;
  482.   
  483.   /* This is stuff we remember about each "conference" */
  484. ! struct conf_ent
  485.   {
  486.       char *name;        /* Conference name */
  487.       int number;        /* Conference number */
  488. --- 97,103 ----
  489.   } *mail_list;
  490.   
  491.   /* This is stuff we remember about each "conference" */
  492. ! EXTERN    struct conf_ent
  493.   {
  494.       char *name;        /* Conference name */
  495.       int number;        /* Conference number */
  496. ***************
  497. *** 95,101 ****
  498.   } *conf_list, *last_conf;
  499.   
  500.   /* This is the QWK message header format */
  501. ! struct qwk_hdr
  502.   {
  503.       unsigned char status;
  504.       unsigned char number[7];
  505. --- 105,111 ----
  506.   } *conf_list, *last_conf;
  507.   
  508.   /* This is the QWK message header format */
  509. ! EXTERN    struct qwk_hdr
  510.   {
  511.       unsigned char status;
  512.       unsigned char number[7];
  513. ***************
  514. *** 113,122 ****
  515.       unsigned char tag;
  516.   };
  517.   
  518. ! struct qwk_hdr rep_hdr;        /* Header for replies */
  519.   
  520.   /* Stuff we remember about each active newsgroup */
  521. ! struct act_ent
  522.   {
  523.       char *name;        /* Newsgroup name */
  524.       int hi;            /* High article number */
  525. --- 123,132 ----
  526.       unsigned char tag;
  527.   };
  528.   
  529. ! EXTERN    struct qwk_hdr rep_hdr;        /* Header for replies */
  530.   
  531.   /* Stuff we remember about each active newsgroup */
  532. ! EXTERN    struct act_ent
  533.   {
  534.       char *name;        /* Newsgroup name */
  535.       int hi;            /* High article number */
  536. ***************
  537. *** 125,131 ****
  538.   } *act_list;
  539.   
  540.   /* Stuff we remember about the .newsrc file */
  541. ! struct nrc_ent
  542.   {
  543.       char *name;        /* Newsgroup name */
  544.       int subscribed;        /* Subscribed flag */
  545. --- 135,141 ----
  546.   } *act_list;
  547.   
  548.   /* Stuff we remember about the .newsrc file */
  549. ! EXTERN    struct nrc_ent
  550.   {
  551.       char *name;        /* Newsgroup name */
  552.       int subscribed;        /* Subscribed flag */
  553. diff -c uqwk1.0/uqwk.man uqwk1.1/uqwk.man
  554. *** uqwk1.0/uqwk.man    Mon Mar 15 13:48:51 1993
  555. --- uqwk1.1/uqwk.man    Tue Mar 16 13:05:14 1993
  556. ***************
  557. *** 152,157 ****
  558. --- 152,163 ----
  559.   QWK files.  Use a \fImaxblocks\fR value of zero to suppress this
  560.   check.  The default is 4000 blocks (half a megabyte).
  561.   .TP
  562. + .B -l\fIlen\fR
  563. + Truncate the names of newsgroups to \fIlen\fR characters.  Some
  564. + offline readers cannot handle long newsgroup names.  The default
  565. + is 15 characters.  Specify a value of zero for unlimited
  566. + newsgroup name lengths.
  567. + .TP
  568.   .B -R\fIreplyfile\fR
  569.   Process \fIreplyfile\fR as a reply packet.  Messages and articles
  570.   created by the offline reader must be uploaded as a reply packet
  571. ***************
  572. *** 224,229 ****
  573. --- 230,241 ----
  574.   .B UQ_NRC_FILE
  575.   Specifies the name of the user's .newsrc file.
  576.   .TP
  577. + .B UQ_MAX_BLKS
  578. + Specifies the maximum size of the QWK packet in 128-byte blocks.
  579. + .TP
  580. + .B UQ_GRP_LEN
  581. + Specifies the maximum length of newsgroup names.
  582. + .TP
  583.   .B UQ_REP_FILE
  584.   Specifies the name of the reply packet, if any.
  585.   .SH "COMMAND LANGUAGE"
  586. ***************
  587. *** 255,264 ****
  588.   List all the available newsgroups and the number of articles in
  589.   each one.
  590.   .SH BUGS
  591. ! Karl J. Vesterling reported that some .newsrc files cause a core dump.
  592. ! This may be related to the size of the .newsrc file or to long
  593. ! lines in the file.  I was unable to reproduce the problem.  Increasing
  594. ! BUF_LEN in uqwk.h may help.
  595.   .SH "SEE ALSO"
  596.   .PD
  597.   .BR mail(1),
  598. --- 267,273 ----
  599.   List all the available newsgroups and the number of articles in
  600.   each one.
  601.   .SH BUGS
  602. ! The handling of MMDF mail files is kludgy and should be fixed.
  603.   .SH "SEE ALSO"
  604.   .PD
  605.   .BR mail(1),
  606.  
  607.  
  608. exit 0 # Just in case...
  609.  
  610.  
  611.